package com.alinesno.infra.smart.scene.entity;

import com.alinesno.infra.common.facade.mapper.entity.InfraBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * 文档阅读任务实体类
 */
@EqualsAndHashCode(callSuper = true)
@TableName("document_reader_task")
@Data
public class DocReaderTaskEntity extends InfraBaseEntity implements Serializable {

    @TableField
    @Column(name = "task_name", type = MySqlTypeConstant.VARCHAR, length = 255, comment = "任务名称")
    private String taskName;

    @TableField
    @Column(name = "scene_id", type = MySqlTypeConstant.BIGINT, length = 32, comment = "场景ID")
    private Long sceneId;

    @TableField
    @Column(name = "document_reader_scene_id", type = MySqlTypeConstant.BIGINT, length = 32, comment = "文档阅读场景ID")
    private Long documentReaderSceneId;

    @TableField
    @Column(name = "channel_stream_id", type = MySqlTypeConstant.BIGINT, length = 32, comment = "渠道流ID")
    private Long channelStreamId ;

    @TableField
    @Column(name = "task_description", type = MySqlTypeConstant.LONGTEXT, comment = "任务描述")
    private String taskDescription;

    @TableField
    @Column(name = "task_status", type = MySqlTypeConstant.VARCHAR, length = 32, comment = "任务状态")
    private String taskStatus;

    @TableField
    @Column(name = "task_start_time", type = MySqlTypeConstant.DATETIME, comment = "任务开始时间")
    private Date taskStartTime;

    @TableField
    @Column(name = "task_end_time", type = MySqlTypeConstant.DATETIME, comment = "任务结束时间")
    private Date taskEndTime;

    @TableField
    @Column(name = "document_id", type = MySqlTypeConstant.VARCHAR, comment = "阅读文档ID")
    private String documentId;

    @TableField
    @Column(name = "document_name", type = MySqlTypeConstant.VARCHAR, comment = "阅读文档名称")
    private String documentName;

    // 文档向量库名称
    @TableField
    @Column(name = "vector_store_name", type = MySqlTypeConstant.VARCHAR, comment = "向量库名称")
    private String vectorStoreName;

    // >>>>>>>>>>>>>>>>>>>>>>>>---------------- 状态管理_start -------------------------
    @TableField
    @Column(name = "reader_gen_status", type = MySqlTypeConstant.VARCHAR, length = 36, comment = "生成状态阅读清单生成状态")
    private String readerGenStatus;

    // 文档内容解析状态
    @TableField("document_parse_status")
    @Column(type = MySqlTypeConstant.VARCHAR, length = 36, comment = "文档内容解析状态")
    private String documentParseStatus ;
    // >>>>>>>>>>>>>>>>>>>>>>>>---------------- 状态管理_end -------------------------

}